﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DMA.SGDB.BLL;
using DMA.SGDB.DAL;
using DMA.SGDB.Util;
using DMA.SGDB.Util.SGDBEnum;
using DMA.SGDB.Web.Shared;
using System.Data;

namespace DMA.SGDB.Web
{
    public partial class TelaCadastroFornecedores : System.Web.UI.Page
    {
        FornecedorPFBLL fornecedorPFBll;
        FornecedorPJBLL fornecedorPJBll;
        FORNECEDOR_PF fornecedorPF;
        FORNECEDOR_PJ fornecedorPJ;   

        protected void Page_Load(object sender, EventArgs e)
        {
            pnlQuestion.Click += new EventHandler<Shared.CustomEventArgs.PainelYesNoUserEventArgs>(pnlQuestion_Click);

            if (!IsPostBack)
            {
                rdbPessoaFisica_CheckedChanged(null, null);
                SetMode(Crud.Options);
                ShowScreenOptions();
            }
        }

        public void FillGridView(String TipoPessoa)
        {
            try
            {
                if (TipoPessoa.Equals("PessoaFisica"))
                {
                    DataTable table = new FornecedorPFBLL().GetAll();

                    gvList.DataSource = table;
                    gvList.DataBind();

                    if (table.Rows.Count > 0)
                        GridViewManager.Configure(gvList, table.Columns.Count + 2, new int[] { 1 });
                }
                else if (TipoPessoa.Equals("PessoaJuridica"))
                {
                    DataTable table = new FornecedorPJBLL().GetAll();

                    gvList.DataSource = table;
                    gvList.DataBind();

                    if(table.Rows.Count > 0)
                        GridViewManager.Configure(gvList, table.Columns.Count + 2, new int[] { 1 });
                }    
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void SetMode(Crud crud)
        {
            Session["Mode"] = crud;
            ToolBar(crud);
        }

        public void ToolBar(Crud crud)
        {
            switch (crud)
            {
                case Crud.List:
                    divBtnNew.Visible = true;
                    divBtnSave.Visible = false;
                    divBtnCancel.Visible = false;
                    divBtnBack.Visible = false;
                    break;
                case Crud.New:
                    divBtnNew.Visible = false;
                    divBtnSave.Visible = true;
                    divBtnCancel.Visible = true;
                    divBtnBack.Visible = false;
                    break;
                case Crud.Edit:
                    divBtnNew.Visible = false;
                    divBtnSave.Visible = true;
                    divBtnCancel.Visible = true;
                    divBtnBack.Visible = false;
                    break;
                case Crud.View:
                    divBtnNew.Visible = false;
                    divBtnSave.Visible = false;
                    divBtnCancel.Visible = false;
                    divBtnBack.Visible = true;
                    break;
                case Crud.Options:
                    divBtnNew.Visible = false;
                    divBtnSave.Visible = false;
                    divBtnCancel.Visible = false;
                    divBtnBack.Visible = false;
                    break;
            }
        }

        public Crud GetMode()
        {
            return (Crud)Session["Mode"];
        }

        public void SetId(int id)
        {
            Session["ID"] = id;
        }

        public int GetID()
        {
            return (int)Session["ID"];
        }

        protected void rdbPessoaFisica_CheckedChanged(object sender, EventArgs e)
        {
            if (rdbPessoaFisica.Checked)
            {
                lblName.Text = "Nome:";
                cpf.Visible = true;
                sexo.Visible = true;
                lblData.Text = "Data de Nascimento:";
                razaoSocial.Visible = false;
                cnpj.Visible = false;

                rdbPessoaJuridica.Checked = false;
            }
            else if (rdbPessoaJuridica.Checked)
            {
                lblName.Text = "Nome Fantasia:";
                cpf.Visible = false;
                sexo.Visible = false;
                lblData.Text = "Data de Fundação:";
                razaoSocial.Visible = true;
                cnpj.Visible = true;
            }
            lblMsg.Text = "";
        }

        protected void rdbPessoaJuridica_CheckedChanged(object sender, EventArgs e)
        {
            if (rdbPessoaFisica.Checked)
            {
                rdbPessoaFisica.Checked = false;
                rdbPessoaFisica_CheckedChanged(null, null);
            }
            else if (rdbPessoaJuridica.Checked)
            {
                lblName.Text = "Nome Fantasia:";
                cpf.Visible = false;
                sexo.Visible = false; 

                razaoSocial.Visible = true;
                cnpj.Visible = true;
            }
            lblMsg.Text = "";
        }

        protected void rbSexoFeminino_CheckedChanged(object sender, EventArgs e)
        {
            if (rbSexoFeminino.Checked)
                rbSexoMasculino.Checked = false;
        }

        protected void rbSexoMasculino_CheckedChanged(object sender, EventArgs e)
        {
            if (rbSexoMasculino.Checked)
                rbSexoFeminino.Checked = false;
        }

        public void LimparCampos()
        {
            txtCNPJ.Text = "";
            txtCPF.Text = "";
            txtData.Text = "";
            txtNome.Text = "";
            txtRazaoSocial.Text = "";
            txtTelefone.Text = "";
            txtCep.Text = "";
            txtCidade.Text = "";
            txtEmail.Text = "";
            txtEndereco.Text = "";
            txtResponsavel.Text = "";
            lblMsg.Text = "";
        }

        public bool ValidaCampos()
        {
            //FornecedoresRep rep = new FornecedoresRep();
            bool valido = true;

            string cnpj = txtCNPJ.Text.Replace(".", "").Replace("-", "");
            string cpf = txtCPF.Text.Replace(".", "").Replace("-", "");
            string cep = txtCep.Text.Replace(".", "").Replace("-", "");
            string telefone = txtTelefone.Text.Replace("(", "").Replace(")", "").Replace(" ", "").Replace("-", "");

            string campo = String.IsNullOrEmpty(cnpj) ? "CPF_FOR" : "CNPJ_FOR";
            string valor = String.IsNullOrEmpty(cnpj) ? cpf : cnpj;

            lblMsg.Text = "";

            if (rdbPessoaFisica.Checked)
            {
                if (String.IsNullOrEmpty(txtNome.Text))
                {
                    lblMsg.Text += "O Nome é obrigatório! <br />";
                    valido = false;
                }
                if (String.IsNullOrEmpty(cpf))
                {
                    lblMsg.Text += "O CPF é obrigatório! <br />";
                    valido = false;
                }
                else
                {
                    //if (rep.CampoExist(valor, campo))
                    //{
                    //    lblMsg.Text += String.Format("O {0} informado já esta cadastrado!", campo.Replace("_FOR", ""));
                    //    valido = false;
                    //}
                }
            }

            if (rdbPessoaJuridica.Checked)
            {
                if (String.IsNullOrEmpty(cnpj))
                {
                    lblMsg.Text += "A Razão Social é obrigatória! <br />";
                    valido = false;
                }
                if (String.IsNullOrEmpty(txtNome.Text))
                {
                    lblMsg.Text += "O Nome Fantasia é obrigatório! <br />";
                    valido = false;
                }
                if (String.IsNullOrEmpty(cnpj))
                {
                    lblMsg.Text += "O CNPJ é obrigatório! <br />";
                    valido = false;
                }
                else
                {
                    //if (rep.CampoExist(valor, campo))
                    //{
                    //    lblMsg.Text += String.Format("O {0} informado já esta cadastrado!", campo.Replace("_FOR", ""));
                    //    valido = false;
                    //}
                }
            }

            if (String.IsNullOrEmpty(txtData.Text))
            {
                lblMsg.Text += "A Data de Nascimento é obrigatória! <br />";
                valido = false;
            }

            if (String.IsNullOrEmpty(txtEndereco.Text))
            {
                lblMsg.Text += "O Endereço é obrigatório! <br />";
                valido = false;
            }

            if (String.IsNullOrEmpty(cep))
            {
                lblMsg.Text += "O Cep é obrigatório! <br />";
                valido = false;
            }

            if (String.IsNullOrEmpty(telefone))
            {
                lblMsg.Text += "O Telefone é obrigatório! <br />";
                valido = false;
            }

            if (String.IsNullOrEmpty(txtCidade.Text))
            {
                lblMsg.Text += "A Cidade é obrigatória! <br />";
                valido = false;
            }

            if (String.IsNullOrEmpty(txtEmail.Text))
            {
                lblMsg.Text += "O E-mail é obrigatório! <br />";
                valido = false;
            }

            if (String.IsNullOrEmpty(txtResponsavel.Text))
            {
                lblMsg.Text += "O Responsável é obrigatório! <br />";
                valido = false;
            }

            return valido;
        }

        protected void imgBtnNew_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                SetMode(Crud.New);
                ShowScreenRegister();
                ClearAllFields(pnlRegister);
                txtNome.Focus();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        //protected void btnCancelar_Click(object sender, EventArgs e)
        //{
        //    LimparCampos();
        //}

        protected void SetValues()
        {
            try
            {
                lblMsg.Text = "";
                bool valido = ValidaCampos();

                if (valido)
                {
                    string cnpj = txtCNPJ.Text.Replace(".", "").Replace("-", "");
                    string cpf = txtCPF.Text.Replace(".", "").Replace("-", "");
                    string cep = txtCep.Text.Replace(".", "").Replace("-", "");
                    string telefone = txtTelefone.Text.Replace("(", "").Replace(")", "").Replace(" ", "").Replace("-", "");

                    if (rdbPessoaFisica.Checked == true)
                    {
                        fornecedorPF = new FORNECEDOR_PF();

                        if (GetMode() == Crud.Edit)
                            fornecedorPF.COD_FOR = GetID();

                        fornecedorPF.NOME_FOR = txtNome.Text;
                        fornecedorPF.CPF_FOR = txtCPF.Text;
                        fornecedorPF.DTA_NSC_FOR = DateTime.Parse(txtData.Text);
                        fornecedorPF.SEXO_FOR = rbSexoFeminino.Checked ? (short)Sexo.Feminino : (short)Sexo.Masculino;
                        fornecedorPF.TEL_FOR = txtTelefone.Text;
                        fornecedorPF.END_FOR = txtEndereco.Text;
                        fornecedorPF.CEP_FOR = txtCep.Text;
                        fornecedorPF.CID_FOR = txtCidade.Text;
                        fornecedorPF.EMAIL_FOR = txtEmail.Text;
                        fornecedorPF.RES_FOR = txtResponsavel.Text;

                        fornecedorPF.DTA_ALT = DateTime.Now;
                    }
                    else
                    {
                        fornecedorPJ = new FORNECEDOR_PJ();

                        if (GetMode() == Crud.Edit)
                            fornecedorPJ.COD_FOR = GetID();

                        fornecedorPJ.NOME_FOR = txtNome.Text;
                        fornecedorPJ.RAZAO_FOR = txtRazaoSocial.Text;
                        fornecedorPJ.CNPJ_FOR = txtCNPJ.Text;
                        fornecedorPJ.DTA_NSC_FOR = DateTime.Parse(txtData.Text);
                        fornecedorPJ.TEL_FOR = txtTelefone.Text;
                        fornecedorPJ.END_FOR = txtEndereco.Text;
                        fornecedorPJ.CEP_FOR = txtCep.Text;
                        fornecedorPJ.CID_FOR = txtCidade.Text;
                        fornecedorPJ.EMAIL_FOR = txtEmail.Text;
                        fornecedorPJ.RES_FOR = txtResponsavel.Text;

                        fornecedorPJ.DTA_ALT = DateTime.Now;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        protected void btnCadastrar_Click(object sender, EventArgs e)
        {
             try
             {
                SetValues();

                bool errorExist = true;

                if (Session["TipoPessoa"].ToString().Equals("PessoaFisica"))
                {
                    errorExist = GetValidationErrorMessages(fornecedorPF);
                }
                else if (Session["TipoPessoa"].ToString().Equals("PessoaJuridica"))
                {
                    errorExist = GetValidationErrorMessages(fornecedorPJ);
                }

                if (errorExist == false)
                {
                    if (Crud.New.Equals(GetMode()))
                    {
                        if (rdbPessoaFisica.Checked == true)
                        {
                            fornecedorPFBll = new FornecedorPFBLL();
                            fornecedorPFBll.Insert(fornecedorPF);
                        }
                        else
                        {
                            fornecedorPJBll = new FornecedorPJBLL();
                            fornecedorPJBll.Insert(fornecedorPJ);
                        }

                    }
                    if (Crud.Edit.Equals(GetMode()))
                    {
                        if (rdbPessoaFisica.Checked == true)
                        {
                            fornecedorPFBll = new FornecedorPFBLL();
                            fornecedorPFBll.Update(fornecedorPF);
                        }
                        else
                        {
                            fornecedorPJBll = new FornecedorPJBLL();
                            fornecedorPJBll.Update(fornecedorPJ);
                        }
                    }

                    FillGridView(Session["TipoPessoa"].ToString());
                    ShowScreenList();
                }

                //if ( > 0)
                //{
                //    LimparCampos();
                //    lblMsg.Text = "Fornecedor cadastrado com sucesso!";
                //}
                //else
                //{
                //    lblMsg.Text = "Erro ao tentar cadastrar o fornecedor, tente novamente.";
                //}
             }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        protected void imgBtnCancel_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                RehabilitateFields();
                ShowScreenList();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        protected void imgBtnEdit_Click(object sender, EventArgs e)
        {
            try
            {
                SetMode(Crud.Edit);

                ShowScreenRegister();

                txtNome.Focus();

                ImageButton img = (ImageButton)sender;
                GridViewRow row = (GridViewRow)img.Parent.Parent;

                int idRecordSelected = int.Parse(row.Cells[1].Text);

                SetId(idRecordSelected);

                PopulateFieldsWithDataDbconfig(idRecordSelected);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        protected void imgBtnVisualize_Click(object sender, EventArgs e)
        {
            try
            {
                SetMode(Crud.View);

                ShowScreenRegister();

                ImageButton img = (ImageButton)sender;
                GridViewRow row = (GridViewRow)img.Parent.Parent;

                int idRecordSelected = int.Parse(row.Cells[1].Text);

                SetId(idRecordSelected);

                PopulateFieldsWithDataDbconfig(idRecordSelected);

                MakeFieldsReadOnly();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        protected void imgBtnDelete_Click(object sender, EventArgs e)
        {
            try
            {
                ImageButton img = (ImageButton)sender;
                GridViewRow row = (GridViewRow)img.Parent.Parent;

                divBtnNew.Visible = false;
                pnlList.Visible = false;

                pnlQuestion.Value = row.Cells[1].Text;
                pnlQuestion.Message = "Confirma a exclusão do Cliente " + row.Cells[2].Text + "?";
                pnlQuestion.ShowPainelQuestion();                
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        void pnlQuestion_Click(object sender, Shared.CustomEventArgs.PainelYesNoUserEventArgs e)
        {
            try
            {
                if (e.Result == Shared.CustomEventArgs.Result.Yes)
                {
                    if (Session["TipoPessoa"].ToString().Equals("PessoaFisica"))
                    {
                        fornecedorPFBll = new FornecedorPFBLL();


                        fornecedorPFBll.Delete(int.Parse(e.Value.ToString()));
                    }
                    else if (Session["TipoPessoa"].ToString().Equals("PessoaJuridica"))
                    {
                        fornecedorPJBll = new FornecedorPJBLL();

                        fornecedorPJBll.Delete(int.Parse(e.Value.ToString()));
                    }

                    FillGridView(Session["TipoPessoa"].ToString());
                    ShowScreenList();
                }

                divBtnNew.Visible = true;
                pnlList.Visible = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void PopulateFieldsWithDataDbconfig(int idRecordSelected)
        {
            try
            {
                if (Session["TipoPessoa"].ToString().Equals("PessoaFisica"))
                {
                    fornecedorPF = new FORNECEDOR_PF();

                    fornecedorPF = new FornecedorPFBLL().LoadById(GetID());

                    rdbPessoaFisica.Checked = true;
                    rdbPessoaFisica_CheckedChanged(null, null);

                    txtNome.Text = fornecedorPF.NOME_FOR;
                    txtCPF.Text = fornecedorPF.CPF_FOR.ToString();
                    txtData.Text = fornecedorPF.DTA_NSC_FOR.ToString();

                    if (fornecedorPF.SEXO_FOR == (short)Sexo.Feminino)
                        rbSexoFeminino.Checked = true;
                    else
                        rbSexoMasculino.Checked = true;

                    txtTelefone.Text = fornecedorPF.TEL_FOR;
                    txtEndereco.Text = fornecedorPF.END_FOR;
                    txtCep.Text = fornecedorPF.CEP_FOR;
                    txtCidade.Text = fornecedorPF.CID_FOR;
                    txtEmail.Text = fornecedorPF.EMAIL_FOR;
                    txtResponsavel.Text = fornecedorPF.RES_FOR;
                }
                else
                {
                    fornecedorPJ = new FORNECEDOR_PJ();

                    fornecedorPJ = new FornecedorPJBLL().LoadById(GetID());

                    rdbPessoaJuridica.Checked = true;
                    rdbPessoaFisica_CheckedChanged(null, null);

                    txtRazaoSocial.Text = fornecedorPJ.RAZAO_FOR;
                    txtNome.Text = fornecedorPJ.NOME_FOR;
                    txtCNPJ.Text = fornecedorPJ.CNPJ_FOR.ToString();
                    txtData.Text = fornecedorPJ.DTA_NSC_FOR.ToString();
                    txtTelefone.Text = fornecedorPJ.TEL_FOR;
                    txtEndereco.Text = fornecedorPJ.END_FOR;
                    txtCep.Text = fornecedorPJ.CEP_FOR;
                    txtCidade.Text = fornecedorPJ.CID_FOR;
                    txtEmail.Text = fornecedorPJ.EMAIL_FOR;
                    txtResponsavel.Text = fornecedorPJ.RES_FOR;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void MakeFieldsReadOnly()
        {
            txtNome.ReadOnly = true;
            rdbPessoaFisica.Enabled = false;
            txtCPF.ReadOnly = true;
            txtData.ReadOnly = true;
            rbSexoFeminino.Enabled = false;
            rbSexoMasculino.Enabled = false;
            txtTelefone.ReadOnly = true;
            txtEndereco.ReadOnly = true;
            txtCep.ReadOnly = true;
            txtCidade.ReadOnly = true;
            txtEmail.ReadOnly = true;
            txtRazaoSocial.ReadOnly = true;
            txtCNPJ.ReadOnly = true;
            txtResponsavel.ReadOnly = true;
        }

        public void RehabilitateFields()
        {
            txtNome.ReadOnly = false;
            rdbPessoaFisica.Enabled = true;
            txtCPF.ReadOnly = false;
            txtData.ReadOnly = false;
            rbSexoFeminino.Enabled = true;
            rbSexoMasculino.Enabled = true;
            txtTelefone.ReadOnly = false;
            txtEndereco.ReadOnly = false;
            txtCep.ReadOnly = false;
            txtCidade.ReadOnly = false;
            txtEmail.ReadOnly = false;
            txtRazaoSocial.ReadOnly = false;
            txtCNPJ.ReadOnly = false;
            txtResponsavel.ReadOnly = false;
        }


        protected void gvList_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                gvList.PageIndex = e.NewPageIndex;
                FillGridView(Session["TipoPessoa"].ToString());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void ShowScreenRegister()
        {
            ClearAllFields(pnlRegister);
            pnlList.Visible = false;
            pnlRegister.Visible = true;
            pnlOptions.Visible = false;
            rbSexoFeminino.Checked = true;

            if (Session["TipoPessoa"].ToString().Equals("PessoaFisica"))
            {
                rdbPessoaFisica.Checked = true;
                rdbPessoaFisica_CheckedChanged(null, null);
            }
            else if (Session["TipoPessoa"].ToString().Equals("PessoaJuridica"))
            {
                rdbPessoaJuridica.Checked = true;
                rdbPessoaFisica_CheckedChanged(null, null);
            }
        }

        public void ShowScreenList()
        {
            SetMode(Crud.List);
            pnlList.Visible = true;
            pnlRegister.Visible = false;
            pnlOptions.Visible = false;
        }

        public void ShowScreenOptions()
        {
            SetMode(Crud.Options);
            pnlList.Visible = false;
            pnlRegister.Visible = false;
            pnlOptions.Visible = true;
        }

        public bool GetValidationErrorMessages(FORNECEDOR_PF fornecedorPF)
        {
            fornecedorPFBll = new FornecedorPFBLL();

            List<string> errosList = new List<string>();

            List<String> strEmptyFields = fornecedorPFBll.ValidateFields(fornecedorPF);

            if (strEmptyFields != null)
            {
                pnlErros.TypeMessage = Shared.UserControl.TypeMessage.Warning;
                pnlErros.Message = "Pêndencia(s):";

                foreach (String erro in strEmptyFields)
                {
                    errosList.Add(erro);
                }
            }
            else if (!fornecedorPFBll.ValidateCPF(fornecedorPF.CPF_FOR.ToString()))
            {
                pnlErros.TypeMessage = Shared.UserControl.TypeMessage.Error;
                pnlErros.Message = "Erro:";

                errosList.Add("CPF Inválido!");
            }
            else
            {
                pnlErros.TypeMessage = Shared.UserControl.TypeMessage.Error;
                pnlErros.Message = "Erro:";

                String isDuplicateRecord = fornecedorPFBll.GetDuplicateRecord(fornecedorPF);

                if (!string.IsNullOrEmpty(isDuplicateRecord))
                    errosList.Add(isDuplicateRecord);
            }

            if (errosList.Count > 0)
            {
                pnlErros.ErrorList = errosList;
                pnlErros.ShowPainelErrors();

                return true;
            }
            else
                return false;
        }

        public bool GetValidationErrorMessages(FORNECEDOR_PJ fornecedorPJ)
        {
            fornecedorPJBll = new FornecedorPJBLL();

            List<string> errosList = new List<string>();

            List<String> strEmptyFields = fornecedorPJBll.ValidateFields(fornecedorPJ);

            if (strEmptyFields != null)
            {
                pnlErros.TypeMessage = Shared.UserControl.TypeMessage.Warning;
                pnlErros.Message = "Pêndencia(s):";

                foreach (String erro in strEmptyFields)
                {
                    errosList.Add(erro);
                }
            }
            else if (fornecedorPJBll.ValidateCNPJ(fornecedorPJ.CNPJ_FOR.ToString()))
            {
                pnlErros.TypeMessage = Shared.UserControl.TypeMessage.Error;
                pnlErros.Message = "Erro:";

                errosList.Add("CNPJ Inválido!");
            }
            else
            {
                pnlErros.TypeMessage = Shared.UserControl.TypeMessage.Error;
                pnlErros.Message = "Erro:";

                String isDuplicateRecord = fornecedorPJBll.GetDuplicateRecord(fornecedorPJ);

                if (!string.IsNullOrEmpty(isDuplicateRecord))
                    errosList.Add(isDuplicateRecord);
            }

            if (errosList.Count > 0)
            {
                pnlErros.ErrorList = errosList;
                pnlErros.ShowPainelErrors();

                return true;
            }
            else
                return false;
        }

        public void ClearAllFields(System.Web.UI.Control controle)
        {
            foreach (System.Web.UI.Control ctle in controle.Controls)
            {
                if (ctle is System.Web.UI.WebControls.TextBox)
                {
                    ((System.Web.UI.WebControls.TextBox)ctle).Text = string.Empty;
                }
                else if (ctle is DropDownList)
                {
                    ((DropDownList)ctle).SelectedValue = "-1";
                }
                else if (ctle is CheckBoxList)
                {
                    foreach (ListItem checkBox in ((CheckBoxList)ctle).Items)
                    {
                        checkBox.Selected = false;
                    }
                }
                else if (ctle is CheckBox)
                {
                    ((CheckBox)ctle).Checked = false;
                }
                else if (ctle.Controls.Count > 0)
                {
                    ClearAllFields(ctle);
                }
            }
        }

        protected void gvList_Sorting(object sender, GridViewSortEventArgs e)
        {
            FillGridView(Session["TipoPessoa"].ToString());
        }

        protected void lbtPessoaFisica_Click(object sender, EventArgs e)
        {
            Session["TipoPessoa"] = "PessoaFisica";
            FillGridView(Session["TipoPessoa"].ToString());
            ShowScreenList();
        }

        protected void lbtPessoaJuridica_Click(object sender, EventArgs e)
        {
            Session["TipoPessoa"] = "PessoaJuridica";
            FillGridView(Session["TipoPessoa"].ToString());
            ShowScreenList();
        }

        protected void lbtBack_Click(object sender, EventArgs e)
        {
            ShowScreenOptions();
        }
    }
}